home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
pcr
/
pcr4_4.lha
/
DIST
/
gc
/
INCLUDE
/
xr
/
GCenum_objs.h
< prev
next >
Wrap
Text File
|
1991-05-24
|
2KB
|
26 lines
typedef void (*callback_fn)
(/* XR_Pointer client_data, XR_Pointer obj, int sz, bool is_atomic */);
/* Call fn for each accessible object in the heap. All calls are perfomed */
/* with all threads not at GC priority stopped. This does a full, */
/* stop-the-world garbage collection before the first call to fn. */
/* Garbage collector callbacks are NOT executed for this collection. */
/* The function fn must be prepared to run with the world stopped. It */
/* may not acquire monitor locks, since */
/* another thread may have been frozen while holding a lock. */
/* Fn is run on VP 0, and thus may use the UNIX stack for temporary */
/* storage if it chooses. */
/* Sz is given in bytes, but is always a multiple of 4. Small objects */
/* (currently sz <= 2048) may yield sz values larger than what was */
/* passed to the allocator. Is_atomic is TRUE if the object is known */
/* not to contain any pointers. If is_atomic is FALSE, and sz is larger */
/* than what was originally asked for, than any unused words should be 0. */
/* The pointer obj points to the beginning of the PCR object. If the */
/* object is a valid Cedar object, then the Cedar pointer is obj+8. */
/* Since we don't have exact pointer info, obj may in fact be */
/* uncollected garbage. It is guaranteed that the entire object is */
/* addressable. Since there are non-Cedar allocation clients, type codes */
/* stored in the objects are not 100% reliable either. */
void XR_EnumObjs(/* callback_fn fn, XR_Pointer client_data*/);